package com.cskaoyan.mapper;

import com.cskaoyan.bean.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 创建日期: 2022/03/28 17:17
 *
 * @author ciggar
 */
public interface UserMapper {

    // 什么是简单参数呢？
    // 在Mybatis中，基本类型+String + 包装类型 = 简单参数
    User selectUserById(@Param("id") Integer id);

    // 通过${} 来取值
    User selectUserByIdUse$(@Param("id") Integer id);


    // 通过名字和nickname查找年龄
    Integer selectAgeByNameAndNickName(@Param("username") String name,
                                       @Param("nickname") String nickname);

    // 参数是User
    int insertUser(User user);


    int insertUser2(@Param("user") User user);


    // 使用Map传值
    Integer selectAgeByMap(Map map);

    // 通过名字修改年龄    arg0 | param1      arg1 | param2
    int updateAgeByName(String name, Integer age);


    // 传入表名
    List<User> selectAllUser(@Param("tableName") String tableName);

    // 传入列名
    User selectUserOrderByColumnName(@Param("columnName") String columnName);

    // 传入表名
    List<User> selectUserListByAge(@Param("age") Integer age,
                                   @Param("tableName") String tableName);


}
